home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 May / CMCD0504.ISO / Software / Freeware / Programare / gdiplusdelphi / demos / Using Images, Bitmaps, and Metafiles / Creating Thumbnail Images / GDITEST38.dpr
Encoding:
Text File  |  2003-10-15  |  2.3 KB  |  93 lines

  1. program GDITEST38;
  2.  
  3. uses
  4.   Classes,
  5.   Windows,
  6.   Messages,
  7.   SysUtils,
  8.   GDIPAPI,
  9.   GDIPOBJ;
  10.  
  11. Procedure OnPaint(DC: HDC);
  12. var
  13.   graphics : TGPGraphics;
  14.   Image, pThumbnail: TGPImage;
  15. begin
  16.   graphics := TGPGraphics.Create(DC);
  17.   Image:= TGPImage.Create('..\..\Media\FRUIT.JPG');
  18.  
  19.   pThumbnail := image.GetThumbnailImage(60, 48, nil, nil);
  20.   graphics.DrawImage(pThumbnail, 10, 10, pThumbnail.GetWidth, pThumbnail.GetHeight);
  21.  
  22.   Image.Free;
  23.   pThumbnail.Free;
  24.   graphics.Free;
  25. end;
  26.  
  27.  
  28. function WndProc(Wnd : HWND; message : UINT; wParam : Integer; lParam: Integer) : Integer; stdcall;
  29. var
  30.   Handle: HDC;
  31.   ps: PAINTSTRUCT;
  32. begin
  33.   case message of
  34.     WM_PAINT:
  35.       begin
  36.         Handle := BeginPaint(Wnd, ps);
  37.         OnPaint(Handle);
  38.         EndPaint(Wnd, ps);
  39.         result := 0;
  40.       end;
  41.  
  42.     WM_DESTROY:
  43.       begin
  44.         PostQuitMessage(0);
  45.         result := 0;
  46.       end;
  47.  
  48.    else
  49.       result := DefWindowProc(Wnd, message, wParam, lParam);
  50.    end;
  51. end;
  52.  
  53. var
  54.   hWnd     : THandle;
  55.   Msg      : TMsg;
  56.   wndClass : TWndClass;
  57. begin
  58.    wndClass.style          := CS_HREDRAW or CS_VREDRAW;
  59.    wndClass.lpfnWndProc    := @WndProc;
  60.    wndClass.cbClsExtra     := 0;
  61.    wndClass.cbWndExtra     := 0;
  62.    wndClass.hInstance      := hInstance;
  63.    wndClass.hIcon          := LoadIcon(0, IDI_APPLICATION);
  64.    wndClass.hCursor        := LoadCursor(0, IDC_ARROW);
  65.    wndClass.hbrBackground  := HBRUSH(GetStockObject(WHITE_BRUSH));
  66.    wndClass.lpszMenuName   := nil;
  67.    wndClass.lpszClassName  := 'GettingStarted';
  68.  
  69.    RegisterClass(wndClass);
  70.  
  71.    hWnd := CreateWindow(
  72.       'GettingStarted',       // window class name
  73.       'Creating Thumbnail Images',       // window caption
  74.       WS_OVERLAPPEDWINDOW,    // window style
  75.       Integer(CW_USEDEFAULT), // initial x position
  76.       Integer(CW_USEDEFAULT), // initial y position
  77.       Integer(CW_USEDEFAULT), // initial x size
  78.       Integer(CW_USEDEFAULT), // initial y size
  79.       0,                      // parent window handle
  80.       0,                      // window menu handle
  81.       hInstance,              // program instance handle
  82.       nil);                   // creation parameters
  83.  
  84.    ShowWindow(hWnd, SW_SHOW);
  85.    UpdateWindow(hWnd);
  86.  
  87.    while(GetMessage(msg, 0, 0, 0)) do
  88.    begin
  89.       TranslateMessage(msg);
  90.       DispatchMessage(msg);
  91.    end;
  92. end.
  93.